To date, there has been known a storage system having a plurality of storage devices (for example, disk array devices) and an information processing device, which directs the disk array devices to read or write data therein, connected through a network. The information processing device directing the disk array devices is a server device, for example. Between the information processing device and individual storage devices, various situations such as excessive load of input and output (I/O) and failure of a constituent module and errors of information level may occur. When such a situation occurs, the involved storage device generates an error code representing an error type and transmits the code to the control device.
In addition, the information processing device has a table that associates an error code with a corresponding process to be conducted to cope with such errors. For example, a certain table of the device has error codes associated with a content of an error, the number of retries, and the number of failovers.
Upon receiving the information about errors from the storage device, the information processing device retrieves, from the table, a content of process and conduct the process. For example, the information processing device displays to a user a message representing the received information about an error; retries for a predetermined number of times; and performs a failover for a predetermined number of times. The error codes and corresponding contents to cope with the error are hard-coded in a program to be executed by the information processing device.
Thus, in such a storage system, when a piece of information is added to the error information or when a content of a process to be performed is changed, all programs including the error information have to be modified. Furthermore, the information processing device has to be restarted to execute the modified program.
Japanese National Publication of International Patent Application No. 2006-524864 is an example of the related art.
According to the above technique, however, which causes the information processing device, or the server, to store a content of a process to be conducted, the information processing device selects a process irrespective of the state of storage devices to cope with the error of a storage device. Thus, the information processing device does not conduct an appropriate process based on the state of the storage device. That is, the information processing device selects a process on the basis of an algorithm thereof and does not conduct the process that is appropriate to cope with the error of the storage device.
In addition, according to the technique for causing the information processing device to store the contents of the process to be performed for the error, in order to modify the contents of the process to be conducted when the error occurs, the program is modified and the information processing device is restarted. Thus, there is a problem that content is not efficiently added to the process and the content of the process is not efficiently modified.
Not only dynamic information on a process setting, which can be freely changed based on a state of a storage device at a timing when an error is detected, but also static information on a process setting, which is previously determined based on an error type, may be changed in some cases. The “process setting” is a setting that is used to perform a certain process. Examples of the process settings include values of variables used for the process and the number of times that the process is repeatedly performed. Thus, a message to be output upon sensing may be changed by updating firmware of the storage device. Therefore, there is a demand for the information processing device to detect a change in the static information in order to achieve more adequate error handling. However, when the storage device centrally manages information for error handling, a server may output a previous message because the information processing device does not detect the change in the static information. Thus, it is difficult for the storage system to perform appropriate error handling if the storage system handles a change in the dynamic information without handling a change in the static information.